OpenMRS
OpenMRS is an open-source electronic medical record (EMR) platform built for low-resource settings. Like DHIS2 it is a platform rather than a finished product: a core data model plus modules, configured into a working clinical system.
The data model
OpenMRS is built around a small number of ideas that repay understanding:
| Entity | Meaning |
|---|---|
| Patient | A person receiving care, with one or more identifiers |
| Visit | A period of contact with the health facility |
| Encounter | A single clinical interaction within a visit |
| Observation (obs) | One recorded fact, tied to a concept |
| Concept | The definition of what can be recorded |
| Order | A request — drug, laboratory test, referral |
The concept dictionary
Almost everything recorded is an observation whose meaning comes from a concept. The concept dictionary is therefore the heart of an OpenMRS implementation: get it wrong and every downstream report inherits the problem.
Concepts have datatypes (numeric, coded, text, date), answers for coded concepts, and mappings to external terminologies — SNOMED CT, LOINC, ICD. Those mappings are what make an OpenMRS instance interoperable rather than a private vocabulary. The Open Concept Lab (OCL) is commonly used to manage dictionaries across systems.
Architecture
- Core — data model, API, service layer
- Modules — clinical and administrative functionality, versioned separately
- Frontend — the O3 microfrontend UI, or earlier reference application UIs
- REST and FHIR APIs — the FHIR module exposes OpenMRS data as FHIR resources, which is the recommended integration path
Distributions bundle a curated set of modules and configuration for a use case (HIV care, primary care, hospital) — Bahmni is a well-known one, adding billing, laboratory and imaging integration.
Where it fits
In an OpenHIE-style architecture OpenMRS is a point-of-service system: it produces clinical data and consumes registry data. It is not the national reporting system — aggregate reporting typically goes to DHIS2, and identity resolution belongs to the client registry.
Implementation notes
- Start from a distribution rather than assembling modules from scratch.
- Design the concept dictionary with clinicians, and map to standard terminologies from the beginning; retrofitting mappings is expensive.
- Plan for offline and intermittent connectivity — it is the norm, not an edge case.
- Version modules deliberately. Module compatibility is the most common source of upgrade pain.
- Decide the reporting path early — how clinical data becomes aggregate indicators.
Related
- DHIS2 — aggregate reporting and analytics
- HL7 FHIR — exchange with other systems
- Digital health architecture
References
- OpenMRS — https://openmrs.org/
- OpenMRS documentation — https://wiki.openmrs.org/